package com.luobr.backend.api.aliyunai.model;


import cn.hutool.core.annotation.Alias;
import lombok.Data;

import java.io.Serializable;

/**
 * @author 罗念笙
 * @date 2025/3/25 17:09
 *
 * 通义万相-通用图像编辑（请求类）
 * 通用图像编辑： 适用于扩图、去水印、风格迁移、图像修复、图像美化等场景
 */
@Data
public class CreateImageSynthesisTaskRequest implements Serializable {

    // 模型，例如 "wanx2.1-imageedit"
    private String model = "wanx2.1-imageedit";

    // 输入图像信息
    private Input input;

    // 图像处理参数
    private Parameters parameters;

    @Data
    public static class Input {

        // 必选，图像编辑功能。目前支持的功能有：expand：扩图等等
        private String function = "expand";

        // 必选提示词，用来描述生成图像中期望包含的元素和视觉特点（默认扩图提示词）
        private String prompt = "扩图";

        // 必选，图像 URL
        @Alias("base_image_url")
        private String baseImageUrl;
    }

    @Data
    public static class Parameters implements Serializable {

        // 可选，图像居中，向上按比例扩展图像。默认值为 1.0，取值范围[1.0, 2.0]
        @Alias("top_scale")
        private Integer topScale;

        // 可选，图像居中，向下按比例扩展图像。默认值为 1.0，取值范围[1.0, 2.0]
        @Alias("bottom_scale")
        private Integer bottomScale;

        // 可选，图像居中，向左按比例扩展图像。默认值为 1.0，取值范围[1.0, 2.0]
        @Alias("left_scale")
        private Integer leftScale;

        // 可选，图像居中，向右按比例扩展图像。默认值为 1.0，取值范围[1.0, 2.0]
        @Alias("right_scale")
        private Integer rightScale;

        // 可选，是否添加水印标识，水印位于图片右下角，文案为“AI生成”，默认值 false
        @Alias("watermark")
        private Boolean watermark = false;
    }
}